package com.totcy.atom.presenter.contract;

import com.totcy.atom.bean.GankTypeBean;
import com.totcy.baselibrary.base.mvpbase.BaseModel;
import com.totcy.baselibrary.base.mvpbase.BaseView;

import java.util.List;

/**
 * description: demo获取gankio 分类数据
 * author: Totcy
 * date: 2017/11/2 14:45
 * update: 2017/11/3
 */

public interface GankTypeListContract {
    interface View extends BaseView {
        /**
         * gankio 分类数据
         *
         * @param images
         */
        void onGankTypeData(List<GankTypeBean> images);

        /**
         * 这里获取数据失败
         */
        void onDataFail();
    }

    interface Presenter {
        /**
         * Presenter 调用 model 获取数据
         *
         * @param type    类型
         * @param curPage 当前页
         */
        void getGankTypeData(String type, int pageSize, int curPage);
    }

    interface Model extends BaseModel {
        interface DataCallback {
            /**
             * 数据获取成功  返回实体
             *
             * @param bean
             */
            void onDataSuccess(List<GankTypeBean> bean);

            /**
             * 这里获取数据失败
             */
            void onDataNotAvailable();
        }

        /**
         * 从网络获取数据
         *
         * @param type     类型
         * @param curPage  当前页
         * @param callback 回调presenter数据
         */
        void getGankTypeData(String type, int pageSize, int curPage, Model.DataCallback callback);

    }
}
